// pages/user/user.js
import { get, post } from "../../api/request";
import { DOMAIN_NAME } from "../../api/config";

Page({

  /**
   * 页面的初始数据
   */
  data: {
    bannerList: [],
    current: 0,
    show: false,
    userInfo: {},
    isInfoComplete: false,
  },
  // 开始蒙版
  onClickShow() {
    this.setData({ show: true });
  },
  // 关掉蒙版
  onClickHide() {
    this.setData({ show: false });
  },
  // 阻止点击穿透
  noop() { },
  // 保存二维码到手机
  saveQrCode() {
    wx.saveImageToPhotosAlbum({
      filePath: '/static/png/qr-code.png',
      success: (res) => {
        wx.showToast({
          title: '保存成功',
          icon: 'success'
        });
      },
      fail: (err) => {
        console.log(err);
        if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
          wx.showModal({
            title: '提示',
            content: '需要您授权保存图片到相册',
            showCancel: false,
            success: () => {
              wx.openSetting({
                success: (settingRes) => {
                  if (settingRes.authSetting['scope.writePhotosAlbum']) {
                    this.saveQrCode();
                  }
                }
              });
            }
          });
        } else {
          wx.showToast({
            title: '保存失败',
            icon: 'error'
          });
        }
      }
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 注册登录组件到全局认证管理器
    const app = getApp();
    if (app && app.globalData && app.globalData.authManager) {
      console.log('user页面: 尝试注册登录组件');
      setTimeout(() => {
        const loginComponent = this.selectComponent('#loginPopup');
        if (loginComponent) {
          console.log('user页面: 找到登录组件，注册到认证管理器');
          app.globalData.authManager.setLoginPopup(loginComponent);
        }
      }, 300);
    }
  },


  /**
   * 跳转用户信息
   */
  userAvatar() {
    wx.navigateTo({
      url: '/pages/useravatar/useravatar',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getCarousel();
    this.getUserInfo();

    // 确保登录组件已设置好
    const app = getApp();
    if (app && app.globalData && app.globalData.authManager) {
      setTimeout(() => {
        const loginComponent = this.selectComponent('#loginPopup');
        if (loginComponent) {
          app.globalData.authManager.setLoginPopup(loginComponent);
        }
      }, 300);
    }
  },


  /**
   * 获取轮播图
   */
  getCarousel() {
    get(`/index/carousel?position=${1}&limit=${0}`).then(res => {
      if (res && res.code === 200 && res.data && res.data.length > 0) {
        const bannerList = res.data.map(item => DOMAIN_NAME + '/file/' + item.img);
        this.setData({ bannerList });
      }
    })
  },

  // 检查用户信息完整性
  checkUserInfoComplete(userData) {
    const requiredFields = {
      'real_name': '姓名',
      'sex': '性别',
      'college_score': '高考成绩',
      'place': '位次',
      'contact_number': '联系电话',
      'parent_phone': '家长电话',
      'political': '政审状态',
      'guardian': '监护人情况',
      'f_job': '父亲职业',
      'm_job': '母亲职业',
      'pp_work': '工作认知',
      'idp': '个人发展计划',
      'inland': '地区倾向',
      'tt_specialize': '专业倾向',
      'fill_style': '填报风格'
    };

    for (const [field, label] of Object.entries(requiredFields)) {
      if (userData[field] === undefined || userData[field] === null || userData[field] === '') {
        return false;
      }
    }
    return true;
  },

  /**
   * 获取用户信息
   */
  getUserInfo() {
    get('/user/my').then(res => {
      if (res && res.code === 200 && res.data) {
        const userInfo = res.data;
        if (userInfo.avatar) {
          userInfo.avatarUrl = DOMAIN_NAME + '/file/' + userInfo.avatar;
        }
        // 检查用户信息完整性
        const isInfoComplete = this.checkUserInfoComplete(userInfo);
        this.setData({
          userInfo,
          isInfoComplete
        });
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '欢迎使用志愿表小程序',
      path: '/pages/index/index',
      imageUrl: '/static/png/logo.png'
    }
  },

  onSwiperChange(e) {
    this.setData({
      current: e.detail.current
    })
  },

  onMenuClick(e) {
    const type = e.currentTarget.dataset.type;
    switch (type) {
      case 'info':
        wx.navigateTo({
          url: '/pages/student-info/student-info'
        });
        break;
      case 'group':
        // 二维码
        this.onClickShow()
        break;
      case 'feedback':
        wx.navigateTo({
          url: '/pages/feedback/feedback'
        });
        break;
      case 'service':
        // 打开客服会话
        wx.openCustomerServiceChat({
          extInfo: { url: '' },
          corpId: '',
          success(res) { }
        });
        break;
      case 'contact':
        wx.navigateTo({
          url: '/pages/contact/contact'
        });
        break;
    }
  },

  // 跳转到我的预约页面
  goToMyAppointments() {
    wx.navigateTo({
      url: '/pages/my-appointments/my-appointments'
    });
  },

  // 跳转到志愿表页面
  goToVolunteerForm() {
    wx.switchTab({
      url: '/pages/tianbao/tianbao',
    })
  }
})